package com.br.produto;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.model.SelectItem;

@ManagedBean(name = "produtoBean")
@RequestScoped
public class ProdutoBean {

	private Produto produto = new Produto();
	private Produto produtoSelecionado = new Produto();

	private List<SelectItem> produtoSelect;

	public Produto getProduto() {
		return produto;
	}

	private List<Produto> lista = null;

	public List<Produto> getLista() {
		ProdutoRN produtoRN = new ProdutoRN();
		if (lista == null) {
			lista = produtoRN.listar();
		}
		return lista;
	}

	public void setProduto(Produto produto) {
		this.produto = produto;
	}

	public void salvar() {

		ProdutoRN produtoRN = new ProdutoRN();

		produtoRN.salvar(this.produto);

	}

	public String novo() {

		this.produto = new Produto();

		this.produto.setFlagAtiva(true);

		return "produto";
	}

	public String ativar() {

		if (this.produto.isFlagAtiva())

			this.produto.setFlagAtiva(false);

		else
			this.produto.setFlagAtiva(true);
		ProdutoRN produtoRN = new ProdutoRN();
		produtoRN.salvar(this.produto);

		return null;
	}

	public String editar() {

		return "produto";
	}

	public void excluir() {
		ProdutoRN produtoRN = new ProdutoRN();
		produtoRN.excluir(this.produto);
		this.lista = null;

	}

	public String buscarProduto() {

		ProdutoRN produtoRN = new ProdutoRN();
		if (this.produtoSelecionado.getNome() != null
				&& !this.produtoSelecionado.getNome().equals("")) {
			produtoRN.pesquisar(this.produtoSelecionado.getNome());

			if (produtoRN != null) {

				this.lista.add(produtoSelecionado);

			}

		}

		return null;
	}

	public List<SelectItem> getProdutoSelect() {

		if (produtoSelect == null) {

			produtoSelect = new ArrayList<SelectItem>();
			ProdutoRN produtoRN = new ProdutoRN();
			List<Produto> listaProduto = produtoRN.listar();

			if (listaProduto != null && !listaProduto.isEmpty()) {
				SelectItem item;
				for (Produto produtoLista : listaProduto) {
					item = new SelectItem(produtoLista.getNome(),
							produtoLista.getNome());
					produtoSelect.add(item);
				}
			}

		}

		return produtoSelect;
	}

	public void setProdutoSelect(List<SelectItem> produtoSelect) {
		this.produtoSelect = produtoSelect;
	}

}
